Overview
ML AKI Detection System
Machine Learning Project
Implemented an Acute Kidney Injury detector using from-scratch trained models receiving real historical medical data.
Timeframe
Jan 2026 - Mar 2026
Tech Stack
Python · Docker · Kubernetes · Grafana
Domain
Health Tech
Outcome
Highly-Robust Backend System
Contents
01
Overview
02
What I Built
03
What I Learned
04
Gallery
Built With
CI/CD
Git
Python
Docker
Grafana
Kubernetes
Links
See On Github
01
Overview
Started off by training a Machine Learning model on noisy health data used for predicting Acute Kidney Injury.
Then implemented a harness around the model in Python for parsing different types of messages being sent over a hospital messaging protocol.
The model and harness were all containerised in a docker container and tested against unseen data in a live environment.
After containerisation, a kubernetes cluster was set up to host the container via Microsoft Azure.
After all of this setup, a grafana dashboard along with alerting was set up to monitor any outages due to errors or unhandled exceptions from purposefully poorly constructed messages or overhwelming workloads.
02
What I Built
The application was separated into message parsing, ML inference, and pager responses. This allowed The team and I to work on separate loosely-coupled parts of the application.
I worked primarily on message parsing which involved receiving and parsing MLLP HL7 messages. To ensure low latency, these messages were parsed as much as possible in ascii bytes to keep prevent expensive string conversions.
Extensive documentation and validation was implented as well as testing on PR through gitlab runners for good CI/CD practices.
03
What I learned
Timing the full process of receiving a message and processing it until you get an output from the model is very important for establishing the scalability of your application.
Meaningfully splitting up work and therefore your app architecture into separable modules creates a loosely coupled and more editable system.
Acceptance testing is critical for catching missed bugs or breaking changes not accounted for in the software, especially with an increasingly complex codebase.
04
Gallery
